package com.project.biz;

/**
 * @Description: 用户登录信息缓存接口类
 * @Author: zhuchi
 * @CreateDate: 2020/6/23 23:31
 * @Version: 1.0
 */
public interface RedisBiz {

    /**
     * 缓存用户ID
     * @param userId
     * @return
     */
    boolean setUserInfo(String token, Long userId);

    /**
     * 根据Token获取用户信息
     * @param token
     * @return
     */
    Long getUserInfo(String token);

    /**
     * 验证token是否存在
     * @param token
     * @return
     */
     boolean checkToken(String token);

    /**
     * 重置Token时间
     * @param token
     * @return
     */
    boolean resetExpire(String token);

    /**
     * 退出登录
     * @param token
     * @return
     */
    boolean loginOut(String token);

    /**
     * 根据用户ID获取用户token
     * @param userId
     * @return
     */
    String getTokenByUserId(Long userId);

    /**
     * 使某用户下线
     * @param userId
     */
    void offlineUser(Long userId);

    /**
     * 验证码加入Redis
     * @param mobile
     * @param code
     */
    void saveVerifyCode(String mobile, String code);

    /**
     * 根据手机号获取验证码
     * @param mobile
     * @return
     */
    String getVerifyCode(String mobile);

    /**
     * 根据手机号删除缓存验证码
     * @param mobile
     * @return
     */
    void delVerifyCode(String mobile);

    /**
     * 注册令牌对应的图形验证码放入缓存（有效时间30分钟）
     * @param registerKey
     * @param code
     * @return
     */
    boolean setRegisterImgCode(String registerKey, String code);

    /**
     * 获取注册令牌对应的图形验证码
     * @param registerKey
     * @return
     */
    String getRegisterImgCode(String registerKey);

    /**
     * 验证注册令牌对应的图形验证码是否存在
     * @param registerKey
     * @return
     */
    boolean checkRegisterImgCode(String registerKey);

    /**
     * 删除注册令牌对应的图形验证码
     * @param registerKey
     */
    void delRegisterImgCode(String registerKey);

}
